package com.aliyun.messagemgt.application.service.mq;

import com.aliyun.messagemgt.dto.base.FourAObjectEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

/**
 * Created with IDEA
 *
 * @author:zhangxingxing 0027012120
 * @date:2019/1/22
 * @time:17:42
 */
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class MsgRecordVO {

    /**
     * 消息ID
     */
    @JsonIgnore
    private Long msgId;
    /**
     * 标题
     */
    private String msgTitle;
    /**
     * 描述
     */
    private String msgDescription;
    /**
     * 消息类型 1 文本 2 文本卡片（url H5跳转） 3 图片 4 语音 5 视频
     */
    @JsonIgnore
    private String messageType;
    /**
     * 计划ID
     */
    private Integer planId;
    /**
     * 计划名
     */
    private String planName;
    /**
     * 场景ID
     */
    private Integer sceneTemplateId;
    /**
     * 场景名
     */
    private String templateName;
    /**
     * 推送渠道Id
     */
    @JsonIgnore
    private Integer pushChannelId;
    /**
     * 推送渠道名称
     */
    @JsonIgnore
    private String pushChannelName;
    /**
     *推送渠道类型
     */
    private Integer pushChannelType;
    /**
     * 所属部门
     */
    @JsonIgnore
    private String ownerDept;
    /**
     * 所属部门名称
     */
    @JsonIgnore
    private String ownerDeptName;
    /**
     * 评论类型
     */
    @JsonIgnore
    private Integer commentType;
    /**
     * 内容
     *//*
    private List<MsgBody> contents;*/
    /**
     * 推送用户
     */
    private List<FourAObjectEntity> pushUserIds;
    /**
     * 推送组织
     */
    private List<FourAObjectEntity> pushOrgIds;
    /**
     * 消息源ID
     */
    @JsonIgnore
    private String msgSourceId;
    /**
     * 消息源名称
     */
    @JsonIgnore
    private String msgSourceName;
    /**
     * 消息源类型 1 智能推送 2 监控报警 3 API
     */
    @JsonIgnore
    private Integer msgSourceType;
    /**
     * 创建用户
     */
    private String userCreate;
    /**
     * 最终接收者
     */
    @JsonIgnore
    private List<Receiver> receivers;
    /**
     * 推送结果
     */
    private List<MsgMiddleResult> results;;
    /**
     * 重发推送结果
     */
    private List<MsgMiddleResult> resendesults;

    public Long getMsgId() {
        return msgId;
    }

    public MsgRecordVO setMsgId(Long msgId) {
        this.msgId = msgId;
        return this;
    }

    public String getMsgTitle() {
        return msgTitle;
    }

    public MsgRecordVO setMsgTitle(String msgTitle) {
        this.msgTitle = msgTitle;
        return this;
    }

    public String getMsgDescription() {
        return msgDescription;
    }

    public MsgRecordVO setMsgDescription(String msgDescription) {
        this.msgDescription = msgDescription;
        return this;
    }

    public String getMessageType() {
        return messageType;
    }

    public MsgRecordVO setMessageType(String messageType) {
        this.messageType = messageType;
        return this;
    }

    public Integer getPlanId() {
        return planId;
    }

    public MsgRecordVO setPlanId(Integer planId) {
        this.planId = planId;
        return this;
    }

    public String getPlanName() {
        return planName;
    }

    public MsgRecordVO setPlanName(String planName) {
        this.planName = planName;
        return this;
    }

    public Integer getSceneTemplateId() {
        return sceneTemplateId;
    }

    public MsgRecordVO setSceneTemplateId(Integer sceneTemplateId) {
        this.sceneTemplateId = sceneTemplateId;
        return this;
    }

    public String getTemplateName() {
        return templateName;
    }

    public MsgRecordVO setTemplateName(String templateName) {
        this.templateName = templateName;
        return this;
    }

    public Integer getPushChannelId() {
        return pushChannelId;
    }

    public MsgRecordVO setPushChannelId(Integer pushChannelId) {
        this.pushChannelId = pushChannelId;
        return this;
    }

    public String getOwnerDept() {
        return ownerDept;
    }

    public MsgRecordVO setOwnerDept(String ownerDept) {
        this.ownerDept = ownerDept;
        return this;
    }

    public List<FourAObjectEntity> getPushUserIds() {
        return pushUserIds;
    }

    public MsgRecordVO setPushUserIds(List<FourAObjectEntity> pushUserIds) {
        this.pushUserIds = pushUserIds;
        return this;
    }

    public List<FourAObjectEntity> getPushOrgIds() {
        return pushOrgIds;
    }

    public MsgRecordVO setPushOrgIds(List<FourAObjectEntity> pushOrgIds) {
        this.pushOrgIds = pushOrgIds;
        return this;
    }

    public String getUserCreate() {
        return userCreate;
    }

    public MsgRecordVO setUserCreate(String userCreate) {
        this.userCreate = userCreate;
        return this;
    }

    public List<Receiver> getReceivers() {
        return receivers;
    }

    public MsgRecordVO setReceivers(List<Receiver> receivers) {
        this.receivers = receivers;
        return this;
    }

    public Integer getCommentType() {
        return commentType;
    }

    public MsgRecordVO setCommentType(Integer commentType) {
        this.commentType = commentType;
        return this;
    }

    public String getPushChannelName() {
        return pushChannelName;
    }

    public MsgRecordVO setPushChannelName(String pushChannelName) {
        this.pushChannelName = pushChannelName;
        return this;
    }

    public String getOwnerDeptName() {
        return ownerDeptName;
    }

    public MsgRecordVO setOwnerDeptName(String ownerDeptName) {
        this.ownerDeptName = ownerDeptName;
        return this;
    }

    public String getMsgSourceId() {
        return msgSourceId;
    }

    public MsgRecordVO setMsgSourceId(String msgSourceId) {
        this.msgSourceId = msgSourceId;
        return this;
    }

    public String getMsgSourceName() {
        return msgSourceName;
    }

    public MsgRecordVO setMsgSourceName(String msgSourceName) {
        this.msgSourceName = msgSourceName;
        return this;
    }

    public List<MsgMiddleResult> getResults() {
        return results;
    }

    public MsgRecordVO setResults(List<MsgMiddleResult> results) {
        this.results = results;
        return this;
    }

    public Integer getMsgSourceType() {
        return msgSourceType;
    }

    public MsgRecordVO setMsgSourceType(Integer msgSourceType) {
        this.msgSourceType = msgSourceType;
        return this;
    }

    public List<MsgMiddleResult> getResendesults() {
        return resendesults;
    }

    public MsgRecordVO setResendesults(List<MsgMiddleResult> resendesults) {
        this.resendesults = resendesults;
        return this;
    }

    public Integer getPushChannelType() {
        return pushChannelType;
    }

    public MsgRecordVO setPushChannelType(Integer pushChannelType) {
        this.pushChannelType = pushChannelType;
        return this;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("MsgRecordVO{");
        sb.append("msgId=").append(msgId);
        sb.append(", msgTitle='").append(msgTitle).append('\'');
        sb.append(", msgDescription='").append(msgDescription).append('\'');
        sb.append(", messageType=").append(messageType);
        sb.append(", planId=").append(planId);
        sb.append(", planName='").append(planName).append('\'');
        sb.append(", sceneTemplateId=").append(sceneTemplateId);
        sb.append(", templateName='").append(templateName).append('\'');
        sb.append(", pushChannelId=").append(pushChannelId);
        sb.append(", pushChannelName='").append(pushChannelName).append('\'');
        sb.append(", pushChannelType=").append(pushChannelType);
        sb.append(", ownerDept='").append(ownerDept).append('\'');
        sb.append(", ownerDeptName='").append(ownerDeptName).append('\'');
        sb.append(", commentType=").append(commentType);
        sb.append(", pushUserIds=").append(pushUserIds);
        sb.append(", pushOrgIds=").append(pushOrgIds);
        sb.append(", msgSourceId='").append(msgSourceId).append('\'');
        sb.append(", msgSourceName='").append(msgSourceName).append('\'');
        sb.append(", msgSourceType=").append(msgSourceType);
        sb.append(", userCreate='").append(userCreate).append('\'');
        sb.append(", receivers=").append(receivers);
        sb.append(", results=").append(results);
        sb.append(", resendesults=").append(resendesults);
        sb.append('}');
        return sb.toString();
    }

}
